package com.itheima.dao;
import com.github.pagehelper.Page;
import com.itheima.pojo.Role;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * 角色接口层
 * @author wangxin
 * @version 1.0
 */
public interface RoleDao {

    Set<Role> findRolesByUserId(Integer userId);

	/**
     * 根据条件分页查询
     * @param queryString
     * @return
     */

    Page<Role> findPage(String queryString);


    Role findById(Integer roleId);

    /**
     * 根据roleID查询对应的权限数据
     * @param roleId
     * @return
     */
    List<Integer> findRoleAndPermissionByRoleId(Integer roleId);

    /**
     * 编辑角色数据
     * @param role
     */
    void edit(Role role);

	/**
     * 根据roleId删除与权限相关的数据
     * @param id
     */
    void deletePermissionAndRoleByRoleId(Integer id);

	/**
     * 添加权限与角色的关联数据
     * @param map
     */
    void addPermissionAndRoleByroleId(Map<String, Integer> map);

	/**
     * 添加Role角色数据
     * @param role
     */
    void addRole(Role role);

	/**
     * 根据id删除角色数据
     * @param roleId
     */
    void deleteRoleById(Integer roleId);

    /**
     * 根据roleId查询角色与用户之间关联的数据
     * @param roleId
     * @return
     */
    Integer findRoleAndUserById(Integer roleId);

    void addMenuAndRoleByRoleId(HashMap<String, Integer> map1);

    void deletMenuAndRoleByRoleId(Integer roleId);

    /**
     * 根据用户id获取role的name
     * @param userId
     * @return
     */
    Role findRolesNameByUserId(Integer userId);

    /**
     * 获得全部权限列表
     */
    List<Role> findAll();
}
